#ifndef UICHECKBOX_H
#define UICHECKBOX_H

#include "UIContainer.h"
#include "UILabel.h"


// 复选框 或 单选框
// 单选时，选中一个，其他的都取消选中
// 默认是多选
class UICheckBox : public UILabel
{
public:
    UICheckBox(UIContainer *parent);
    ~UICheckBox();
    // 类型
    std::string getUIType() override;

    // 选中状态
    void setChecked(bool checked);
    bool getChecked();

    // 分组
    DEFINE_PROPERTY(std::string, Group, "");

    // 单选还是多选
    DEFINE_PROPERTY(bool, MultiSelect, true);

    // 选中时的图片
    // DEFINE_PROPERTY(std::string, CheckedImage, "");
    // 未选中时的图片
    // DEFINE_PROPERTY(std::string, UncheckedImage, "");

protected:
    // 选中状态
    bool m_Checked = false;

public:
    // 虚函数的实现
    void onDrawContent(DuiWinManager *mgr, DuiRect &rect_in, DuiRect &rect_out) override;
    void onMouseDown(int x, int y) override;
};

#endif
